﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HermesProxy.World.Enums.V2_4_3_8606
{
    // ReSharper disable InconsistentNaming
    // 2.4.3
    public enum ObjectField
    {
        OBJECT_FIELD_GUID = 0x0,                                                    // 0x000 - Size: 2 - Type: GUID - Flags: PUBLIC
        OBJECT_FIELD_TYPE = 0x2,                                                    // 0x002 - Size: 1 - Type: INT - Flags: PUBLIC
        OBJECT_FIELD_ENTRY = 0x3,                                                   // 0x003 - Size: 1 - Type: INT - Flags: PUBLIC
        OBJECT_FIELD_SCALE_X = 0x4,                                                 // 0x004 - Size: 1 - Type: FLOAT - Flags: PUBLIC
        OBJECT_FIELD_PADDING = 0x5,                                                 // 0x005 - Size: 1 - Type: INT - Flags: NONE
        OBJECT_END = 0x6
    }

    public enum ItemField
    {
        ITEM_FIELD_OWNER = ObjectField.OBJECT_END + 0x0,                            // 0x003 - Size: 2 - Type: GUID - Flags: PUBLIC
        ITEM_FIELD_CONTAINED = ObjectField.OBJECT_END + 0x2,                        // 0x005 - Size: 2 - Type: GUID - Flags: PUBLIC
        ITEM_FIELD_CREATOR = ObjectField.OBJECT_END + 0x4,                          // 0x007 - Size: 2 - Type: GUID - Flags: PUBLIC
        ITEM_FIELD_GIFTCREATOR = ObjectField.OBJECT_END + 0x6,                      // 0x009 - Size: 2 - Type: GUID - Flags: PUBLIC
        ITEM_FIELD_STACK_COUNT = ObjectField.OBJECT_END + 0x8,                      // 0x00B - Size: 1 - Type: INT - Flags: OWNER_ONLY + UNK2
        ITEM_FIELD_DURATION = ObjectField.OBJECT_END + 0x9,                         // 0x00C - Size: 1 - Type: INT - Flags: OWNER_ONLY + UNK2
        ITEM_FIELD_SPELL_CHARGES = ObjectField.OBJECT_END + 0xA,                    // 0x00D - Size: 5 - Type: INT - Flags: OWNER_ONLY + UNK2
        ITEM_FIELD_FLAGS = ObjectField.OBJECT_END + 0xF,                            // 0x012 - Size: 1 - Type: INT - Flags: PUBLIC
        ITEM_FIELD_ENCHANTMENT = ObjectField.OBJECT_END + 0x10,                     // 0x013 - Size: 33 - Type: INT - Flags: PUBLIC
        ITEM_FIELD_PROPERTY_SEED = ObjectField.OBJECT_END + 0x31,                   // 0x034 - Size: 1 - Type: INT - Flags: PUBLIC
        ITEM_FIELD_RANDOM_PROPERTIES_ID = ObjectField.OBJECT_END + 0x32,            // 0x035 - Size: 1 - Type: INT - Flags: PUBLIC
        ITEM_FIELD_ITEM_TEXT_ID = ObjectField.OBJECT_END + 0x33,                    // 0x036 - Size: 1 - Type: INT - Flags: OWNER_ONLY
        ITEM_FIELD_DURABILITY = ObjectField.OBJECT_END + 0x34,                      // 0x037 - Size: 1 - Type: INT - Flags: OWNER_ONLY + UNK2
        ITEM_FIELD_MAXDURABILITY = ObjectField.OBJECT_END + 0x35,                   // 0x038 - Size: 1 - Type: INT - Flags: OWNER_ONLY + UNK2
        ITEM_END = ObjectField.OBJECT_END + 0x36                                    // 0x039
    }

    public enum ContainerField
    {
        CONTAINER_FIELD_NUM_SLOTS = ItemField.ITEM_END + 0x0,                       // 0x006 - Size: 1 - Type: INT - Flags: PUBLIC
        CONTAINER_ALIGN_PAD = ItemField.ITEM_END + 0x1,                             // 0x007 - Size: 1 - Type: BYTES - Flags: NONE
        CONTAINER_FIELD_SLOT_1 = ItemField.ITEM_END + 0x2,                          // 0x008 - Size: 72 - Type: GUID - Flags: PUBLIC
        CONTAINER_END = ItemField.ITEM_END + 0x4A                                   // 0x050
    }

    public enum UnitField
    {
        UNIT_FIELD_CHARM = ObjectField.OBJECT_END + 0x0,                            // 0x006 - Size: 2 - Type: GUID - Flags: PUBLIC
        UNIT_FIELD_SUMMON = ObjectField.OBJECT_END + 0x2,                           // 0x008 - Size: 2 - Type: GUID - Flags: PUBLIC
        UNIT_FIELD_CHARMEDBY = ObjectField.OBJECT_END + 0x4,                        // 0x00A - Size: 2 - Type: GUID - Flags: PUBLIC
        UNIT_FIELD_SUMMONEDBY = ObjectField.OBJECT_END + 0x6,                       // 0x00C - Size: 2 - Type: GUID - Flags: PUBLIC
        UNIT_FIELD_CREATEDBY = ObjectField.OBJECT_END + 0x8,                        // 0x00E - Size: 2 - Type: GUID - Flags: PUBLIC
        UNIT_FIELD_TARGET = ObjectField.OBJECT_END + 0xA,                           // 0x010 - Size: 2 - Type: GUID - Flags: PUBLIC
        UNIT_FIELD_PERSUADED = ObjectField.OBJECT_END + 0xC,                        // 0x012 - Size: 2 - Type: GUID - Flags: PUBLIC
        UNIT_FIELD_CHANNEL_OBJECT = ObjectField.OBJECT_END + 0xE,                   // 0x014 - Size: 2 - Type: GUID - Flags: PUBLIC
        UNIT_FIELD_HEALTH = ObjectField.OBJECT_END + 0x10,                          // 0x016 - Size: 1 - Type: INT - Flags: DYNAMIC
        UNIT_FIELD_POWER1 = ObjectField.OBJECT_END + 0x11,                          // 0x017 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_POWER2 = ObjectField.OBJECT_END + 0x12,                          // 0x018 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_POWER3 = ObjectField.OBJECT_END + 0x13,                          // 0x019 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_POWER4 = ObjectField.OBJECT_END + 0x14,                          // 0x01A - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_POWER5 = ObjectField.OBJECT_END + 0x15,                          // 0x01B - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_MAXHEALTH = ObjectField.OBJECT_END + 0x16,                       // 0x01C - Size: 1 - Type: INT - Flags: DYNAMIC
        UNIT_FIELD_MAXPOWER1 = ObjectField.OBJECT_END + 0x17,                       // 0x01D - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_MAXPOWER2 = ObjectField.OBJECT_END + 0x18,                       // 0x01E - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_MAXPOWER3 = ObjectField.OBJECT_END + 0x19,                       // 0x01F - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_MAXPOWER4 = ObjectField.OBJECT_END + 0x1A,                       // 0x020 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_MAXPOWER5 = ObjectField.OBJECT_END + 0x1B,                       // 0x021 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_LEVEL = ObjectField.OBJECT_END + 0x1C,                           // 0x022 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_FACTIONTEMPLATE = ObjectField.OBJECT_END + 0x1D,                 // 0x023 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_BYTES_0 = ObjectField.OBJECT_END + 0x1E,                         // 0x024 - Size: 1 - Type: BYTES - Flags: PUBLIC
        UNIT_VIRTUAL_ITEM_SLOT_DISPLAY = ObjectField.OBJECT_END + 0x1F,             // 0x025 - Size: 3 - Type: INT - Flags: PUBLIC
        UNIT_VIRTUAL_ITEM_INFO = ObjectField.OBJECT_END + 0x22,                     // 0x028 - Size: 6 - Type: BYTES - Flags: PUBLIC
        UNIT_FIELD_FLAGS = ObjectField.OBJECT_END + 0x28,                           // 0x02E - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_FLAGS_2 = ObjectField.OBJECT_END + 0x29,                         // 0x02F - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_AURA = ObjectField.OBJECT_END + 0x2A,                            // 0x030 - Size: 56 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_AURAFLAGS = ObjectField.OBJECT_END + 0x62,                       // 0x068 - Size: 14 - Type: BYTES - Flags: PUBLIC
        UNIT_FIELD_AURALEVELS = ObjectField.OBJECT_END + 0x70,                      // 0x076 - Size: 14 - Type: BYTES - Flags: PUBLIC
        UNIT_FIELD_AURAAPPLICATIONS = ObjectField.OBJECT_END + 0x7E,                // 0x084 - Size: 14 - Type: BYTES - Flags: PUBLIC
        UNIT_FIELD_AURASTATE = ObjectField.OBJECT_END + 0x8C,                       // 0x092 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_BASEATTACKTIME = ObjectField.OBJECT_END + 0x8D,                  // 0x093 - Size: 2 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_RANGEDATTACKTIME = ObjectField.OBJECT_END + 0x8F,                // 0x095 - Size: 1 - Type: INT - Flags: PRIVATE
        UNIT_FIELD_BOUNDINGRADIUS = ObjectField.OBJECT_END + 0x90,                  // 0x096 - Size: 1 - Type: FLOAT - Flags: PUBLIC
        UNIT_FIELD_COMBATREACH = ObjectField.OBJECT_END + 0x91,                     // 0x097 - Size: 1 - Type: FLOAT - Flags: PUBLIC
        UNIT_FIELD_DISPLAYID = ObjectField.OBJECT_END + 0x92,                       // 0x098 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_NATIVEDISPLAYID = ObjectField.OBJECT_END + 0x93,                 // 0x099 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_MOUNTDISPLAYID = ObjectField.OBJECT_END + 0x94,                  // 0x09A - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_MINDAMAGE = ObjectField.OBJECT_END + 0x95,                       // 0x09B - Size: 1 - Type: FLOAT - Flags: PRIVATE + OWNER_ONLY + UNK3
        UNIT_FIELD_MAXDAMAGE = ObjectField.OBJECT_END + 0x96,                       // 0x09C - Size: 1 - Type: FLOAT - Flags: PRIVATE + OWNER_ONLY + UNK3
        UNIT_FIELD_MINOFFHANDDAMAGE = ObjectField.OBJECT_END + 0x97,                // 0x09D - Size: 1 - Type: FLOAT - Flags: PRIVATE + OWNER_ONLY + UNK3
        UNIT_FIELD_MAXOFFHANDDAMAGE = ObjectField.OBJECT_END + 0x98,                // 0x09E - Size: 1 - Type: FLOAT - Flags: PRIVATE + OWNER_ONLY + UNK3
        UNIT_FIELD_BYTES_1 = ObjectField.OBJECT_END + 0x99,                         // 0x09F - Size: 1 - Type: BYTES - Flags: PUBLIC
        UNIT_FIELD_PETNUMBER = ObjectField.OBJECT_END + 0x9A,                       // 0x0A0 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_PET_NAME_TIMESTAMP = ObjectField.OBJECT_END + 0x9B,              // 0x0A1 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_PETEXPERIENCE = ObjectField.OBJECT_END + 0x9C,                   // 0x0A2 - Size: 1 - Type: INT - Flags: OWNER_ONLY
        UNIT_FIELD_PETNEXTLEVELEXP = ObjectField.OBJECT_END + 0x9D,                 // 0x0A3 - Size: 1 - Type: INT - Flags: OWNER_ONLY
        UNIT_DYNAMIC_FLAGS = ObjectField.OBJECT_END + 0x9E,                         // 0x0A4 - Size: 1 - Type: INT - Flags: DYNAMIC
        UNIT_CHANNEL_SPELL = ObjectField.OBJECT_END + 0x9F,                         // 0x0A5 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_MOD_CAST_SPEED = ObjectField.OBJECT_END + 0xA0,                        // 0x0A6 - Size: 1 - Type: FLOAT - Flags: PUBLIC
        UNIT_CREATED_BY_SPELL = ObjectField.OBJECT_END + 0xA1,                      // 0x0A7 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_NPC_FLAGS = ObjectField.OBJECT_END + 0xA2,                             // 0x0A8 - Size: 1 - Type: INT - Flags: DYNAMIC
        UNIT_NPC_EMOTESTATE = ObjectField.OBJECT_END + 0xA3,                        // 0x0A9 - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_TRAINING_POINTS = ObjectField.OBJECT_END + 0xA4,                       // 0x0AA - Size: 1 - Type: TWO_SHORT - Flags: OWNER_ONLY
        UNIT_FIELD_STAT0 = ObjectField.OBJECT_END + 0xA5,                           // 0x0AB - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_STAT1 = ObjectField.OBJECT_END + 0xA6,                           // 0x0AC - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_STAT2 = ObjectField.OBJECT_END + 0xA7,                           // 0x0AD - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_STAT3 = ObjectField.OBJECT_END + 0xA8,                           // 0x0AE - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_STAT4 = ObjectField.OBJECT_END + 0xA9,                           // 0x0AF - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_POSSTAT0 = ObjectField.OBJECT_END + 0xAA,                        // 0x0B0 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_POSSTAT1 = ObjectField.OBJECT_END + 0xAB,                        // 0x0B1 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_POSSTAT2 = ObjectField.OBJECT_END + 0xAC,                        // 0x0B2 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_POSSTAT3 = ObjectField.OBJECT_END + 0xAD,                        // 0x0B3 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_POSSTAT4 = ObjectField.OBJECT_END + 0xAE,                        // 0x0B4 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_NEGSTAT0 = ObjectField.OBJECT_END + 0xAF,                        // 0x0B5 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_NEGSTAT1 = ObjectField.OBJECT_END + 0xB0,                        // 0x0B6 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_NEGSTAT2 = ObjectField.OBJECT_END + 0xB1,                        // 0x0B7 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_NEGSTAT3 = ObjectField.OBJECT_END + 0xB2,                        // 0x0B8 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_NEGSTAT4 = ObjectField.OBJECT_END + 0xB3,                        // 0x0B9 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_RESISTANCES = ObjectField.OBJECT_END + 0xB4,                     // 0x0BA - Size: 7 - Type: INT - Flags: PRIVATE + OWNER_ONLY + UNK3
        UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE = ObjectField.OBJECT_END + 0xBB,      // 0x0C1 - Size: 7 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE = ObjectField.OBJECT_END + 0xC2,      // 0x0C8 - Size: 7 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_BASE_MANA = ObjectField.OBJECT_END + 0xC9,                       // 0x0CF - Size: 1 - Type: INT - Flags: PUBLIC
        UNIT_FIELD_BASE_HEALTH = ObjectField.OBJECT_END + 0xCA,                     // 0x0D0 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_BYTES_2 = ObjectField.OBJECT_END + 0xCB,                         // 0x0D1 - Size: 1 - Type: BYTES - Flags: PUBLIC
        UNIT_FIELD_ATTACK_POWER = ObjectField.OBJECT_END + 0xCC,                    // 0x0D2 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_ATTACK_POWER_MODS = ObjectField.OBJECT_END + 0xCD,               // 0x0D3 - Size: 1 - Type: TWO_SHORT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_ATTACK_POWER_MULTIPLIER = ObjectField.OBJECT_END + 0xCE,         // 0x0D4 - Size: 1 - Type: FLOAT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_RANGED_ATTACK_POWER = ObjectField.OBJECT_END + 0xCF,             // 0x0D5 - Size: 1 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_RANGED_ATTACK_POWER_MODS = ObjectField.OBJECT_END + 0xD0,        // 0x0D6 - Size: 1 - Type: TWO_SHORT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER = ObjectField.OBJECT_END + 0xD1,  // 0x0D7 - Size: 1 - Type: FLOAT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_MINRANGEDDAMAGE = ObjectField.OBJECT_END + 0xD2,                 // 0x0D8 - Size: 1 - Type: FLOAT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_MAXRANGEDDAMAGE = ObjectField.OBJECT_END + 0xD3,                 // 0x0D9 - Size: 1 - Type: FLOAT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_POWER_COST_MODIFIER = ObjectField.OBJECT_END + 0xD4,             // 0x0DA - Size: 7 - Type: INT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_POWER_COST_MULTIPLIER = ObjectField.OBJECT_END + 0xDB,           // 0x0E1 - Size: 7 - Type: FLOAT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_MAXHEALTHMODIFIER = ObjectField.OBJECT_END + 0xE2,               // 0x0E8 - Size: 1 - Type: FLOAT - Flags: PRIVATE + OWNER_ONLY
        UNIT_FIELD_PADDING = ObjectField.OBJECT_END + 0xE3,                         // 0x0E9 - Size: 1 - Type: INT - Flags: NONE
        UNIT_END = ObjectField.OBJECT_END + 0xE4                                    // 0x0EA
    }

    public enum PlayerField
    {
        PLAYER_DUEL_ARBITER = UnitField.UNIT_END + 0x0,                             // 0x0E4 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_FLAGS = UnitField.UNIT_END + 0x2,                                    // 0x0E6 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_GUILDID = UnitField.UNIT_END + 0x3,                                  // 0x0E7 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_GUILDRANK = UnitField.UNIT_END + 0x4,                                // 0x0E8 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_BYTES = UnitField.UNIT_END + 0x5,                                    // 0x0E9 - Size: 1 - Type: BYTES - Flags: PUBLIC
        PLAYER_BYTES_2 = UnitField.UNIT_END + 0x6,                                  // 0x0EA - Size: 1 - Type: BYTES - Flags: PUBLIC
        PLAYER_BYTES_3 = UnitField.UNIT_END + 0x7,                                  // 0x0EB - Size: 1 - Type: BYTES - Flags: PUBLIC
        PLAYER_DUEL_TEAM = UnitField.UNIT_END + 0x8,                                // 0x0EC - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_GUILD_TIMESTAMP = UnitField.UNIT_END + 0x9,                          // 0x0ED - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_QUEST_LOG_1_1 = UnitField.UNIT_END + 0xA,                            // 0x0EE - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_1_2 = UnitField.UNIT_END + 0xB,                            // 0x0EF - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_1_3 = UnitField.UNIT_END + 0xC,                            // 0x0F0 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_1_4 = UnitField.UNIT_END + 0xD,                            // 0x0F1 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_2_1 = UnitField.UNIT_END + 0xE,                            // 0x0F2 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_2_2 = UnitField.UNIT_END + 0xF,                            // 0x0F3 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_2_3 = UnitField.UNIT_END + 0x10,                           // 0x0F4 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_2_4 = UnitField.UNIT_END + 0x11,                           // 0x0F5 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_3_1 = UnitField.UNIT_END + 0x12,                           // 0x0F6 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_3_2 = UnitField.UNIT_END + 0x13,                           // 0x0F7 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_3_3 = UnitField.UNIT_END + 0x14,                           // 0x0F8 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_3_4 = UnitField.UNIT_END + 0x15,                           // 0x0F9 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_4_1 = UnitField.UNIT_END + 0x16,                           // 0x0FA - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_4_2 = UnitField.UNIT_END + 0x17,                           // 0x0FB - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_4_3 = UnitField.UNIT_END + 0x18,                           // 0x0FC - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_4_4 = UnitField.UNIT_END + 0x19,                           // 0x0FD - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_5_1 = UnitField.UNIT_END + 0x1A,                           // 0x0FE - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_5_2 = UnitField.UNIT_END + 0x1B,                           // 0x0FF - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_5_3 = UnitField.UNIT_END + 0x1C,                           // 0x100 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_5_4 = UnitField.UNIT_END + 0x1D,                           // 0x101 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_6_1 = UnitField.UNIT_END + 0x1E,                           // 0x102 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_6_2 = UnitField.UNIT_END + 0x1F,                           // 0x103 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_6_3 = UnitField.UNIT_END + 0x20,                           // 0x104 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_6_4 = UnitField.UNIT_END + 0x21,                           // 0x105 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_7_1 = UnitField.UNIT_END + 0x22,                           // 0x106 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_7_2 = UnitField.UNIT_END + 0x23,                           // 0x107 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_7_3 = UnitField.UNIT_END + 0x24,                           // 0x108 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_7_4 = UnitField.UNIT_END + 0x25,                           // 0x109 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_8_1 = UnitField.UNIT_END + 0x26,                           // 0x10A - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_8_2 = UnitField.UNIT_END + 0x27,                           // 0x10B - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_8_3 = UnitField.UNIT_END + 0x28,                           // 0x10C - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_8_4 = UnitField.UNIT_END + 0x29,                           // 0x10D - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_9_1 = UnitField.UNIT_END + 0x2A,                           // 0x10E - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_9_2 = UnitField.UNIT_END + 0x2B,                           // 0x10F - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_9_3 = UnitField.UNIT_END + 0x2C,                           // 0x110 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_9_4 = UnitField.UNIT_END + 0x2D,                           // 0x111 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_10_1 = UnitField.UNIT_END + 0x2E,                          // 0x112 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_10_2 = UnitField.UNIT_END + 0x2F,                          // 0x113 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_10_3 = UnitField.UNIT_END + 0x30,                          // 0x114 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_10_4 = UnitField.UNIT_END + 0x31,                          // 0x115 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_11_1 = UnitField.UNIT_END + 0x32,                          // 0x116 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_11_2 = UnitField.UNIT_END + 0x33,                          // 0x117 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_11_3 = UnitField.UNIT_END + 0x34,                          // 0x118 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_11_4 = UnitField.UNIT_END + 0x35,                          // 0x119 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_12_1 = UnitField.UNIT_END + 0x36,                          // 0x11A - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_12_2 = UnitField.UNIT_END + 0x37,                          // 0x11B - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_12_3 = UnitField.UNIT_END + 0x38,                          // 0x11C - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_12_4 = UnitField.UNIT_END + 0x39,                          // 0x11D - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_13_1 = UnitField.UNIT_END + 0x3A,                          // 0x11E - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_13_2 = UnitField.UNIT_END + 0x3B,                          // 0x11F - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_13_3 = UnitField.UNIT_END + 0x3C,                          // 0x120 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_13_4 = UnitField.UNIT_END + 0x3D,                          // 0x121 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_14_1 = UnitField.UNIT_END + 0x3E,                          // 0x122 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_14_2 = UnitField.UNIT_END + 0x3F,                          // 0x123 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_14_3 = UnitField.UNIT_END + 0x40,                          // 0x124 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_14_4 = UnitField.UNIT_END + 0x41,                          // 0x125 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_15_1 = UnitField.UNIT_END + 0x42,                          // 0x126 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_15_2 = UnitField.UNIT_END + 0x43,                          // 0x127 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_15_3 = UnitField.UNIT_END + 0x44,                          // 0x128 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_15_4 = UnitField.UNIT_END + 0x45,                          // 0x129 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_16_1 = UnitField.UNIT_END + 0x46,                          // 0x12A - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_16_2 = UnitField.UNIT_END + 0x47,                          // 0x12B - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_16_3 = UnitField.UNIT_END + 0x48,                          // 0x12C - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_16_4 = UnitField.UNIT_END + 0x49,                          // 0x12D - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_17_1 = UnitField.UNIT_END + 0x4A,                          // 0x12E - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_17_2 = UnitField.UNIT_END + 0x4B,                          // 0x12F - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_17_3 = UnitField.UNIT_END + 0x4C,                          // 0x130 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_17_4 = UnitField.UNIT_END + 0x4D,                          // 0x131 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_18_1 = UnitField.UNIT_END + 0x4E,                          // 0x132 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_18_2 = UnitField.UNIT_END + 0x4F,                          // 0x133 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_18_3 = UnitField.UNIT_END + 0x50,                          // 0x134 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_18_4 = UnitField.UNIT_END + 0x51,                          // 0x135 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_19_1 = UnitField.UNIT_END + 0x52,                          // 0x136 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_19_2 = UnitField.UNIT_END + 0x53,                          // 0x137 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_19_3 = UnitField.UNIT_END + 0x54,                          // 0x138 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_19_4 = UnitField.UNIT_END + 0x55,                          // 0x139 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_20_1 = UnitField.UNIT_END + 0x56,                          // 0x13A - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_20_2 = UnitField.UNIT_END + 0x57,                          // 0x13B - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_20_3 = UnitField.UNIT_END + 0x58,                          // 0x13C - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_20_4 = UnitField.UNIT_END + 0x59,                          // 0x13D - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_21_1 = UnitField.UNIT_END + 0x5A,                          // 0x13E - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_21_2 = UnitField.UNIT_END + 0x5B,                          // 0x13F - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_21_3 = UnitField.UNIT_END + 0x5C,                          // 0x140 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_21_4 = UnitField.UNIT_END + 0x5D,                          // 0x141 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_22_1 = UnitField.UNIT_END + 0x5E,                          // 0x142 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_22_2 = UnitField.UNIT_END + 0x5F,                          // 0x143 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_22_3 = UnitField.UNIT_END + 0x60,                          // 0x144 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_22_4 = UnitField.UNIT_END + 0x61,                          // 0x145 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_23_1 = UnitField.UNIT_END + 0x62,                          // 0x146 - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_23_2 = UnitField.UNIT_END + 0x63,                          // 0x147 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_23_3 = UnitField.UNIT_END + 0x64,                          // 0x148 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_23_4 = UnitField.UNIT_END + 0x65,                          // 0x149 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_24_1 = UnitField.UNIT_END + 0x66,                          // 0x14A - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_24_2 = UnitField.UNIT_END + 0x67,                          // 0x14B - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_24_3 = UnitField.UNIT_END + 0x68,                          // 0x14C - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_24_4 = UnitField.UNIT_END + 0x69,                          // 0x14D - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_25_1 = UnitField.UNIT_END + 0x6A,                          // 0x14E - Size: 1 - Type: INT - Flags: GROUP_ONLY
        PLAYER_QUEST_LOG_25_2 = UnitField.UNIT_END + 0x6B,                          // 0x14F - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_QUEST_LOG_25_3 = UnitField.UNIT_END + 0x6C,                          // 0x150 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_QUEST_LOG_25_4 = UnitField.UNIT_END + 0x6D,                          // 0x151 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_VISIBLE_ITEM_1_CREATOR = UnitField.UNIT_END + 0x6E,                  // 0x152 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_1_0 = UnitField.UNIT_END + 0x70,                        // 0x154 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_1_PROPERTIES = UnitField.UNIT_END + 0x7C,               // 0x160 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_1_PAD = UnitField.UNIT_END + 0x7D,                      // 0x161 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_2_CREATOR = UnitField.UNIT_END + 0x7E,                  // 0x162 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_2_0 = UnitField.UNIT_END + 0x80,                        // 0x164 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_2_PROPERTIES = UnitField.UNIT_END + 0x8C,               // 0x170 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_2_PAD = UnitField.UNIT_END + 0x8D,                      // 0x171 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_3_CREATOR = UnitField.UNIT_END + 0x8E,                  // 0x172 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_3_0 = UnitField.UNIT_END + 0x90,                        // 0x174 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_3_PROPERTIES = UnitField.UNIT_END + 0x9C,               // 0x180 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_3_PAD = UnitField.UNIT_END + 0x9D,                      // 0x181 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_4_CREATOR = UnitField.UNIT_END + 0x9E,                  // 0x182 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_4_0 = UnitField.UNIT_END + 0xA0,                        // 0x184 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_4_PROPERTIES = UnitField.UNIT_END + 0xAC,               // 0x190 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_4_PAD = UnitField.UNIT_END + 0xAD,                      // 0x191 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_5_CREATOR = UnitField.UNIT_END + 0xAE,                  // 0x192 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_5_0 = UnitField.UNIT_END + 0xB0,                        // 0x194 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_5_PROPERTIES = UnitField.UNIT_END + 0xBC,               // 0x1A0 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_5_PAD = UnitField.UNIT_END + 0xBD,                      // 0x1A1 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_6_CREATOR = UnitField.UNIT_END + 0xBE,                  // 0x1A2 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_6_0 = UnitField.UNIT_END + 0xC0,                        // 0x1A4 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_6_PROPERTIES = UnitField.UNIT_END + 0xCC,               // 0x1B0 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_6_PAD = UnitField.UNIT_END + 0xCD,                      // 0x1B1 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_7_CREATOR = UnitField.UNIT_END + 0xCE,                  // 0x1B2 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_7_0 = UnitField.UNIT_END + 0xD0,                        // 0x1B4 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_7_PROPERTIES = UnitField.UNIT_END + 0xDC,               // 0x1C0 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_7_PAD = UnitField.UNIT_END + 0xDD,                      // 0x1C1 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_8_CREATOR = UnitField.UNIT_END + 0xDE,                  // 0x1C2 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_8_0 = UnitField.UNIT_END + 0xE0,                        // 0x1C4 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_8_PROPERTIES = UnitField.UNIT_END + 0xEC,               // 0x1D0 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_8_PAD = UnitField.UNIT_END + 0xED,                      // 0x1D1 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_9_CREATOR = UnitField.UNIT_END + 0xEE,                  // 0x1D2 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_9_0 = UnitField.UNIT_END + 0xF0,                        // 0x1D4 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_9_PROPERTIES = UnitField.UNIT_END + 0xFC,               // 0x1E0 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_9_PAD = UnitField.UNIT_END + 0xFD,                      // 0x1E1 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_10_CREATOR = UnitField.UNIT_END + 0xFE,                 // 0x1E2 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_10_0 = UnitField.UNIT_END + 0x100,                      // 0x1E4 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_10_PROPERTIES = UnitField.UNIT_END + 0x10C,             // 0x1F0 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_10_PAD = UnitField.UNIT_END + 0x10D,                    // 0x1F1 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_11_CREATOR = UnitField.UNIT_END + 0x10E,                // 0x1F2 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_11_0 = UnitField.UNIT_END + 0x110,                      // 0x1F4 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_11_PROPERTIES = UnitField.UNIT_END + 0x11C,             // 0x200 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_11_PAD = UnitField.UNIT_END + 0x11D,                    // 0x201 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_12_CREATOR = UnitField.UNIT_END + 0x11E,                // 0x202 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_12_0 = UnitField.UNIT_END + 0x120,                      // 0x204 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_12_PROPERTIES = UnitField.UNIT_END + 0x12C,             // 0x210 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_12_PAD = UnitField.UNIT_END + 0x12D,                    // 0x211 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_13_CREATOR = UnitField.UNIT_END + 0x12E,                // 0x212 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_13_0 = UnitField.UNIT_END + 0x130,                      // 0x214 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_13_PROPERTIES = UnitField.UNIT_END + 0x13C,             // 0x220 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_13_PAD = UnitField.UNIT_END + 0x13D,                    // 0x221 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_14_CREATOR = UnitField.UNIT_END + 0x13E,                // 0x222 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_14_0 = UnitField.UNIT_END + 0x140,                      // 0x224 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_14_PROPERTIES = UnitField.UNIT_END + 0x14C,             // 0x230 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_14_PAD = UnitField.UNIT_END + 0x14D,                    // 0x231 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_15_CREATOR = UnitField.UNIT_END + 0x14E,                // 0x232 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_15_0 = UnitField.UNIT_END + 0x150,                      // 0x234 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_15_PROPERTIES = UnitField.UNIT_END + 0x15C,             // 0x240 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_15_PAD = UnitField.UNIT_END + 0x15D,                    // 0x241 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_16_CREATOR = UnitField.UNIT_END + 0x15E,                // 0x242 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_16_0 = UnitField.UNIT_END + 0x160,                      // 0x244 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_16_PROPERTIES = UnitField.UNIT_END + 0x16C,             // 0x250 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_16_PAD = UnitField.UNIT_END + 0x16D,                    // 0x251 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_17_CREATOR = UnitField.UNIT_END + 0x16E,                // 0x252 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_17_0 = UnitField.UNIT_END + 0x170,                      // 0x254 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_17_PROPERTIES = UnitField.UNIT_END + 0x17C,             // 0x260 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_17_PAD = UnitField.UNIT_END + 0x17D,                    // 0x261 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_18_CREATOR = UnitField.UNIT_END + 0x17E,                // 0x262 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_18_0 = UnitField.UNIT_END + 0x180,                      // 0x264 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_18_PROPERTIES = UnitField.UNIT_END + 0x18C,             // 0x270 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_18_PAD = UnitField.UNIT_END + 0x18D,                    // 0x271 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_19_CREATOR = UnitField.UNIT_END + 0x18E,                // 0x272 - Size: 2 - Type: GUID - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_19_0 = UnitField.UNIT_END + 0x190,                      // 0x274 - Size: 12 - Type: INT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_19_PROPERTIES = UnitField.UNIT_END + 0x19C,             // 0x280 - Size: 1 - Type: TWO_SHORT - Flags: PUBLIC
        PLAYER_VISIBLE_ITEM_19_PAD = UnitField.UNIT_END + 0x19D,                    // 0x281 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_CHOSEN_TITLE = UnitField.UNIT_END + 0x19E,                           // 0x282 - Size: 1 - Type: INT - Flags: PUBLIC
        PLAYER_FIELD_PAD_0 = UnitField.UNIT_END + 0x19F,                            // 0x283 - Size: 1 - Type: INT - Flags: NONE
        PLAYER_FIELD_INV_SLOT_HEAD = UnitField.UNIT_END + 0x1A0,                    // 0x284 - Size: 46 - Type: GUID - Flags: PRIVATE
        PLAYER_FIELD_PACK_SLOT_1 = UnitField.UNIT_END + 0x1CE,                      // 0x2B2 - Size: 32 - Type: GUID - Flags: PRIVATE
        PLAYER_FIELD_BANK_SLOT_1 = UnitField.UNIT_END + 0x1EE,                      // 0x2D2 - Size: 56 - Type: GUID - Flags: PRIVATE
        PLAYER_FIELD_BANKBAG_SLOT_1 = UnitField.UNIT_END + 0x226,                   // 0x30A - Size: 14 - Type: GUID - Flags: PRIVATE
        PLAYER_FIELD_VENDORBUYBACK_SLOT_1 = UnitField.UNIT_END + 0x234,             // 0x318 - Size: 24 - Type: GUID - Flags: PRIVATE
        PLAYER_FIELD_KEYRING_SLOT_1 = UnitField.UNIT_END + 0x24C,                   // 0x330 - Size: 64 - Type: GUID - Flags: PRIVATE
        PLAYER_FIELD_VANITYPET_SLOT_1 = UnitField.UNIT_END + 0x28C,                 // 0x370 - Size: 36 - Type: GUID - Flags: PRIVATE
        PLAYER_FARSIGHT = UnitField.UNIT_END + 0x2B0,                               // 0x394 - Size: 2 - Type: GUID - Flags: PRIVATE
        PLAYER_FIELD_KNOWN_TITLES = UnitField.UNIT_END + 0x2B2,                     // 0x396 - Size: 2 - Type: GUID - Flags: PRIVATE
        PLAYER_XP = UnitField.UNIT_END + 0x2B4,                                     // 0x398 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_NEXT_LEVEL_XP = UnitField.UNIT_END + 0x2B5,                          // 0x399 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_SKILL_INFO_1_1 = UnitField.UNIT_END + 0x2B6,                         // 0x39A - Size: 384 - Type: TWO_SHORT - Flags: PRIVATE
        PLAYER_CHARACTER_POINTS1 = UnitField.UNIT_END + 0x436,                      // 0x51A - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_CHARACTER_POINTS2 = UnitField.UNIT_END + 0x437,                      // 0x51B - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_TRACK_CREATURES = UnitField.UNIT_END + 0x438,                        // 0x51C - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_TRACK_RESOURCES = UnitField.UNIT_END + 0x439,                        // 0x51D - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_BLOCK_PERCENTAGE = UnitField.UNIT_END + 0x43A,                       // 0x51E - Size: 1 - Type: FLOAT - Flags: PRIVATE
        PLAYER_DODGE_PERCENTAGE = UnitField.UNIT_END + 0x43B,                       // 0x51F - Size: 1 - Type: FLOAT - Flags: PRIVATE
        PLAYER_PARRY_PERCENTAGE = UnitField.UNIT_END + 0x43C,                       // 0x520 - Size: 1 - Type: FLOAT - Flags: PRIVATE
        PLAYER_EXPERTISE = UnitField.UNIT_END + 0x43D,                              // 0x521 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_OFFHAND_EXPERTISE = UnitField.UNIT_END + 0x43E,                      // 0x522 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_CRIT_PERCENTAGE = UnitField.UNIT_END + 0x43F,                        // 0x523 - Size: 1 - Type: FLOAT - Flags: PRIVATE
        PLAYER_RANGED_CRIT_PERCENTAGE = UnitField.UNIT_END + 0x440,                 // 0x524 - Size: 1 - Type: FLOAT - Flags: PRIVATE
        PLAYER_OFFHAND_CRIT_PERCENTAGE = UnitField.UNIT_END + 0x441,                // 0x525 - Size: 1 - Type: FLOAT - Flags: PRIVATE
        PLAYER_SPELL_CRIT_PERCENTAGE1 = UnitField.UNIT_END + 0x442,                 // 0x526 - Size: 7 - Type: FLOAT - Flags: PRIVATE
        PLAYER_SHIELD_BLOCK = UnitField.UNIT_END + 0x449,                           // 0x52D - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_EXPLORED_ZONES_1 = UnitField.UNIT_END + 0x44A,                       // 0x52E - Size: 128 - Type: BYTES - Flags: PRIVATE
        PLAYER_REST_STATE_EXPERIENCE = UnitField.UNIT_END + 0x4CA,                  // 0x5AE - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_COINAGE = UnitField.UNIT_END + 0x4CB,                          // 0x5AF - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_MOD_DAMAGE_DONE_POS = UnitField.UNIT_END + 0x4CC,              // 0x5B0 - Size: 7 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = UnitField.UNIT_END + 0x4D3,              // 0x5B7 - Size: 7 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = UnitField.UNIT_END + 0x4DA,              // 0x5BE - Size: 7 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_MOD_HEALING_DONE_POS = UnitField.UNIT_END + 0x4E1,             // 0x5C5 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_MOD_TARGET_RESISTANCE = UnitField.UNIT_END + 0x4E2,            // 0x5C6 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE = UnitField.UNIT_END + 0x4E3,   // 0x5C7 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_BYTES = UnitField.UNIT_END + 0x4E4,                            // 0x5C8 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_AMMO_ID = UnitField.UNIT_END + 0x4E5,                                // 0x5C9 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_SELF_RES_SPELL = UnitField.UNIT_END + 0x4E6,                         // 0x5CA - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_PVP_MEDALS = UnitField.UNIT_END + 0x4E7,                       // 0x5CB - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_BUYBACK_PRICE_1 = UnitField.UNIT_END + 0x4E8,                  // 0x5CC - Size: 12 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = UnitField.UNIT_END + 0x4F4,              // 0x5D8 - Size: 12 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_KILLS = UnitField.UNIT_END + 0x500,                            // 0x5E4 - Size: 1 - Type: TWO_SHORT - Flags: PRIVATE
        PLAYER_FIELD_TODAY_CONTRIBUTION = UnitField.UNIT_END + 0x501,               // 0x5E5 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_YESTERDAY_CONTRIBUTION = UnitField.UNIT_END + 0x502,           // 0x5E6 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_LIFETIME_HONORABLE_KILLS = UnitField.UNIT_END + 0x503,         // 0x5E7 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_BYTES2 = UnitField.UNIT_END + 0x504,                           // 0x5E8 - Size: 1 - Type: BYTES - Flags: PRIVATE
        PLAYER_FIELD_WATCHED_FACTION_INDEX = UnitField.UNIT_END + 0x505,            // 0x5E9 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_COMBAT_RATING_1 = UnitField.UNIT_END + 0x506,                  // 0x5EA - Size: 24 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = UnitField.UNIT_END + 0x51E,              // 0x602 - Size: 18 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_HONOR_CURRENCY = UnitField.UNIT_END + 0x530,                   // 0x614 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_ARENA_CURRENCY = UnitField.UNIT_END + 0x531,                   // 0x615 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_MOD_MANA_REGEN = UnitField.UNIT_END + 0x532,                   // 0x616 - Size: 1 - Type: FLOAT - Flags: PRIVATE
        PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT = UnitField.UNIT_END + 0x533,         // 0x617 - Size: 1 - Type: FLOAT - Flags: PRIVATE
        PLAYER_FIELD_MAX_LEVEL = UnitField.UNIT_END + 0x534,                        // 0x618 - Size: 1 - Type: INT - Flags: PRIVATE
        PLAYER_FIELD_DAILY_QUESTS_1 = UnitField.UNIT_END + 0x535,                   // 0x619 - Size: 25 - Type: INT - Flags: PRIVATE
        PLAYER_END = UnitField.UNIT_END + 0x54E                                     // 0x632
    }

    public enum GameObjectField
    {
        GAMEOBJECT_FIELD_CREATED_BY = ObjectField.OBJECT_END + 0x0,                     // 0x006 - Size: 2 - Type: GUID - Flags: PUBLIC
        GAMEOBJECT_DISPLAYID = ObjectField.OBJECT_END + 0x2,                        // 0x008 - Size: 1 - Type: INT - Flags: PUBLIC
        GAMEOBJECT_FLAGS = ObjectField.OBJECT_END + 0x3,                            // 0x009 - Size: 1 - Type: INT - Flags: PUBLIC
        GAMEOBJECT_ROTATION = ObjectField.OBJECT_END + 0x4,                         // 0x00A - Size: 4 - Type: FLOAT - Flags: PUBLIC
        GAMEOBJECT_STATE = ObjectField.OBJECT_END + 0x8,                            // 0x00E - Size: 1 - Type: INT - Flags: PUBLIC
        GAMEOBJECT_POS_X = ObjectField.OBJECT_END + 0x9,                            // 0x00F - Size: 1 - Type: FLOAT - Flags: PUBLIC
        GAMEOBJECT_POS_Y = ObjectField.OBJECT_END + 0xA,                            // 0x010 - Size: 1 - Type: FLOAT - Flags: PUBLIC
        GAMEOBJECT_POS_Z = ObjectField.OBJECT_END + 0xB,                            // 0x011 - Size: 1 - Type: FLOAT - Flags: PUBLIC
        GAMEOBJECT_FACING = ObjectField.OBJECT_END + 0xC,                           // 0x012 - Size: 1 - Type: FLOAT - Flags: PUBLIC
        GAMEOBJECT_DYN_FLAGS = ObjectField.OBJECT_END + 0xD,                        // 0x013 - Size: 1 - Type: INT - Flags: DYNAMIC
        GAMEOBJECT_FACTION = ObjectField.OBJECT_END + 0xE,                          // 0x014 - Size: 1 - Type: INT - Flags: PUBLIC
        GAMEOBJECT_TYPE_ID = ObjectField.OBJECT_END + 0xF,                          // 0x015 - Size: 1 - Type: INT - Flags: PUBLIC
        GAMEOBJECT_LEVEL = ObjectField.OBJECT_END + 0x10,                           // 0x016 - Size: 1 - Type: INT - Flags: PUBLIC
        GAMEOBJECT_ARTKIT = ObjectField.OBJECT_END + 0x11,                          // 0x017 - Size: 1 - Type: INT - Flags: PUBLIC
        GAMEOBJECT_ANIMPROGRESS = ObjectField.OBJECT_END + 0x12,                    // 0x018 - Size: 1 - Type: INT - Flags: DYNAMIC
        GAMEOBJECT_PADDING = ObjectField.OBJECT_END + 0x13,                         // 0x019 - Size: 1 - Type: INT - Flags: NONE
        GAMEOBJECT_END = ObjectField.OBJECT_END + 0x14                              // 0x01A
    }

    public enum DynamicObjectField
    {
        DYNAMICOBJECT_CASTER = ObjectField.OBJECT_END + 0x0,                        // 0x006 - Size: 2 - Type: GUID - Flags: PUBLIC
        DYNAMICOBJECT_BYTES = ObjectField.OBJECT_END + 0x2,                         // 0x008 - Size: 1 - Type: BYTES - Flags: PUBLIC
        DYNAMICOBJECT_SPELLID = ObjectField.OBJECT_END + 0x3,                       // 0x009 - Size: 1 - Type: INT - Flags: PUBLIC
        DYNAMICOBJECT_RADIUS = ObjectField.OBJECT_END + 0x4,                        // 0x00A - Size: 1 - Type: FLOAT - Flags: PUBLIC
        DYNAMICOBJECT_POS_X = ObjectField.OBJECT_END + 0x5,                         // 0x00B - Size: 1 - Type: FLOAT - Flags: PUBLIC
        DYNAMICOBJECT_POS_Y = ObjectField.OBJECT_END + 0x6,                         // 0x00C - Size: 1 - Type: FLOAT - Flags: PUBLIC
        DYNAMICOBJECT_POS_Z = ObjectField.OBJECT_END + 0x7,                         // 0x00D - Size: 1 - Type: FLOAT - Flags: PUBLIC
        DYNAMICOBJECT_FACING = ObjectField.OBJECT_END + 0x8,                        // 0x00E - Size: 1 - Type: FLOAT - Flags: PUBLIC
        DYNAMICOBJECT_CASTTIME = ObjectField.OBJECT_END + 0x9,                      // 0x00F - Size: 1 - Type: INT - Flags: PUBLIC
        DYNAMICOBJECT_END = ObjectField.OBJECT_END + 0xA                            // 0x010
    }

    public enum CorpseField
    {
        CORPSE_FIELD_OWNER = ObjectField.OBJECT_END + 0x0,                          // 0x006 - Size: 2 - Type: GUID - Flags: PUBLIC
        CORPSE_FIELD_PARTY = ObjectField.OBJECT_END + 0x2,                          // 0x008 - Size: 2 - Type: GUID - Flags: PUBLIC
        CORPSE_FIELD_FACING = ObjectField.OBJECT_END + 0x4,                         // 0x00A - Size: 1 - Type: FLOAT - Flags: PUBLIC
        CORPSE_FIELD_POS_X = ObjectField.OBJECT_END + 0x5,                          // 0x00B - Size: 1 - Type: FLOAT - Flags: PUBLIC
        CORPSE_FIELD_POS_Y = ObjectField.OBJECT_END + 0x6,                          // 0x00C - Size: 1 - Type: FLOAT - Flags: PUBLIC
        CORPSE_FIELD_POS_Z = ObjectField.OBJECT_END + 0x7,                          // 0x00D - Size: 1 - Type: FLOAT - Flags: PUBLIC
        CORPSE_FIELD_DISPLAY_ID = ObjectField.OBJECT_END + 0x8,                     // 0x00E - Size: 1 - Type: INT - Flags: PUBLIC
        CORPSE_FIELD_ITEM = ObjectField.OBJECT_END + 0x9,                           // 0x00F - Size: 19 - Type: INT - Flags: PUBLIC
        CORPSE_FIELD_BYTES_1 = ObjectField.OBJECT_END + 0x1C,                       // 0x022 - Size: 1 - Type: BYTES - Flags: PUBLIC
        CORPSE_FIELD_BYTES_2 = ObjectField.OBJECT_END + 0x1D,                       // 0x023 - Size: 1 - Type: BYTES - Flags: PUBLIC
        CORPSE_FIELD_GUILD = ObjectField.OBJECT_END + 0x1E,                         // 0x024 - Size: 1 - Type: INT - Flags: PUBLIC
        CORPSE_FIELD_FLAGS = ObjectField.OBJECT_END + 0x1F,                         // 0x025 - Size: 1 - Type: INT - Flags: PUBLIC
        CORPSE_FIELD_DYNAMIC_FLAGS = ObjectField.OBJECT_END + 0x20,                 // 0x026 - Size: 1 - Type: INT - Flags: DYNAMIC
        CORPSE_FIELD_PAD = ObjectField.OBJECT_END + 0x21,                           // 0x027 - Size: 1 - Type: INT - Flags: NONE
        CORPSE_END = ObjectField.OBJECT_END + 0x22                                  // 0x028
    }
}
